import axios from 'axios'
import { Toast } from 'vant'
import store from '@/store'
import { environment } from '@/service/apiMapList.js' // 引入环境变量判断

// 配置axios默认值
axios.defaults.baseURL = 'http://192.168.0.101:8086/retailcrm'

// 定义请求方法变量
let request

/**
 * mPaaS 请求方法
 * @param {String} operationType RPC 服务名称
 * @param {Object} _requestBody 请求体
 */
function requestMPaaS(operationType, _requestBody) {
  return new Promise(resolve => {
    // 添加加载提示
    Toast.loading({
      duration: 0,
      message: '加载中...',
      forbidClick: true
    })
    // eslint-disable-next-line
    AlipayJSBridge.call(
      'rpc',
      {
        operationType,
        requestData: [{ _requestBody }],
        headers: {
          'Content-Type': 'application/json'
        }
      },
      function(result) {
        // 清空提示
        Toast.clear()
        // console.log('request文件日志', result, '_requestBody', _requestBody, 'operationType', operationType)
        console.log({
          result,
          _requestBody,
          operationType,
          store: store.state
        })
        // 请求成功
        // if (result.code == 200) {
        //   resolve(result)
        // } else {
        //   reject(result.message)
        // }
        if (result.code === undefined) {
          resolve(result.data)
        } else {
          resolve(result)
        }
      }
    )
  })
}

/**
 * Ajax请求方法
 * @param {String} ajaxPath 请求地址
 * @param {Object} _requestBody 请求体
 */
function requestAjax(ajaxPath, _requestBody) {
  return new Promise((resolve, reject) => {
    // 添加加载提示
    Toast.loading({
      duration: 0,
      message: '加载中...',
      forbidClick: true
    })
    axios
      .post(ajaxPath, _requestBody)
      .then(res => {
        // 清空提示
        Toast.clear()
        resolve(res.data)
      })
      .catch(err => {
        // 清空提示
        Toast.clear()
        reject(err.data)
      })
  })
}

// 根据环境判断当前使用的请求方法
if (environment === 'mPaaSPath') {
  // 使用 mPaaS 请求方法
  request = requestMPaaS
} else {
  // 使用ajax请求方法
  request = requestAjax
}

export default request
